1. Field of the Invention
The invention relates to automatic verification of correct partitioning of instructions and data for execution in a multiprocessor environment. In particular, the invention relates to analyzing the instructions and data to detect domain violations.
2. Related Art
Parallel processing is a known technique in which a particular piece of software is run on plural processors at once in order to achieve faster execution. In known systems, special care must be taken when writing code for a multiprocessor environment. Otherwise, processes running on each of the plural processors might interfere with each other.
One technique for writing code specifically for a multiprocessor environment is to assure that all separate “tasks” in the code can safely run simultaneously (that is, are “multiprocessor-safe”). Unfortunately, for large and complex software, making this assurance can involve a tremendous coding effort. In addition, code for such software can be so complex that properly defining tasks that are multiprocessor-safe is simply infeasible.
Furthermore, a vast amount of code exists that is designed for a one-processor environment. Converting such code into multiprocessor-safe code for a multiprocessor environment using traditional techniques also can involve a tremendous coding effort. In some circumstances, converting the code can involve more effort than re-writing the code. As a result, the advantages of multiprocessing are not realized or available for many existing applications.